﻿using PLCS.Domain.Shared.Stations;

namespace PLCS.Application.Contracts.StationApp.Dtos;

public class StationEditDto : EntityDto<Guid>
{
    /// <summary>
    /// 工厂编码
    /// </summary>
    public string? SiteNo { get; set; }

    /// <summary>
    /// 车间编码
    /// </summary>
    public string? AreaNo { get; set; }

    /// <summary>
    /// 产线编码
    /// </summary>

    public string? PdLineNo { get; set; }

    /// <summary>
    /// 工位名称
    /// </summary>

    public string StaName { get; set; }

    /// <summary>
    /// 工位名称MES
    /// </summary>

    public string StaName_Higher { get; set; }

    /// <summary>
    /// 工位名称PLC
    /// </summary>

    public string StaName_Lower { get; set; }

    /// <summary>
    /// 工位编号
    /// </summary>

    public string StaNum { get; set; }

    /// <summary>
    /// 所属设备编号
    /// </summary>

    public string? Be_EquNum { get; set; }
    /// <summary>
    /// 分类
    /// </summary>

    public string Kind { get; set; }

    /// <summary>
    /// 优先级（在同一个分类下，会考虑优先级）
    /// </summary>
    public int Level { get; set; }

    /// <summary>
    /// Desc:工位类型
    /// </summary>

    public StationType StationType { get; set; }

    /// <summary>
    ///  最高容量
    /// </summary>
    public int Capacity { get; set; }

    /// <summary>
    /// 兼容托盘类型
    /// </summary>

    public string? MultipleTrayType { get; set; }

    /// <summary>
    /// 缓存工位
    /// </summary>

    public string? CacheStation { get; set; }

    /// <summary>
    /// 平行工位
    /// </summary>
    public string? ParallelStation { get; set; }

    /// <summary>
    /// 可取设备
    /// </summary>

    public string? CanTake_EquNum { get; set; }

    /// <summary>
    /// 可送设备
    /// </summary>

    public string? CanSend_EquNum { get; set; }

    /// <summary>
    /// 是否使用
    /// </summary>

    public YesNo IsUse { get; set; } = YesNo.是;

    /// <summary>
    /// 满位状态变化触发事件
    /// </summary>
    public string? FullChangedMethodName { get; set; }

    /// <summary>
    /// 变空位变化触发方案
    /// </summary>
    public string? EmptyChangedMethodName { get; set; }

    public int Position { get; set; }
}